In harmonic analysis using a discrete time-frequency transform such as the discrete Fourier transform, the discrete cosine transform, etc. windowing is used to avoid the discontinuity that occurs when the finite sequence is made periodic. The windowing involves multiplying each point of the finite data sequence by a numerical value in the range from 0 to 1.00. This computation is not possible in implementations that use the conventional two's complement fractional number system since it cannot represent the value +1.00. As explained in the following paragraph, implementations that use the two's complement fractional number system can only represent values from −1.00 to just less than +1. A potential solution is to negate the data sequence so that it ranges from −1.00 to just less than +1 and the window values range from just less than 0 to −1.00. This approach has the problem that in the two's complement fractional number system, multiplying −1.00 times −1.00 produces a result (+1) that cannot be expressed. Many existing implementations flag this result as an “error” while others return the value −1.00 which is a significant error.
An important aspect of implementations that use the current two's complement fractional number system is that the most negative number that can be represented is −1.00 while the most positive number that can be represented is one unit in the least significant position (ULP) less than +1. This results in a problem wherein not all multiplication products can be represented. For example, −1.00×−1.00 produces a result (+1) that cannot be represented as a two's complement fractional number. Therefore a need exists for a new system wherein all multiplication products produce a result that can be represented.